#ifndef __MZ_GET_OPTS_H__
#define __MZ_GET_OPTS_H__

#define MZ_OPT_NO_FOUND		0
#define MZ_OPT_FOUND		1

typedef int BOOL;


/*
format: tags|alias[!|=[s|i|f]]
= :must having values
! :must no value, but you can make it nagetive by add prefix "no" when using.

s: string(s)
i: int
f:double
*/


int mz_make_opt_result(int argc, char** argv, char** udarr);
int mz_having_arg(char* arg);

typedef enum {
	MZ_NoParam,
	MZ_Boolean,
	MZ_Int,
	MZ_Double,
	MZ_String
} MZ_OPT_TYPE;

typedef struct {
	MZ_OPT_TYPE param_type;
	BOOL recved;//received? 
	void* param_arr;
	unsigned int param_cnt;
} MZ_ARG_INFO;
MZ_ARG_INFO* get_arg_result(char* key);

int mz_release_opt_rs();

#endif/* __MZ_GET_OPTS_H__ */